1 package activity;
2
3 import java.lang.*;
4 import java.util.*;
5 import javax.swing.*;
6 import java.awt.*;
7 import javax.swing.border.*;
8 import java.awt.event.*;
9 import javax.swing.table.*;
10 import attr.*;
11
12 public class ViewProductActivity extends JFrame implements ActionListener {
13 private JPanel panel;
14 private Customer customer;
15 private JFrame activity;
16 private Employee employee;
17 private JScrollPane frame;
18 JComboBox byWhatCB;
19 JTable table;
20 private JButton buttonLogout, buttonBack, buttonCheck, buttonAddProduct;
21 private JLabel title, header, keywordLabel;
22 JTextField keywordTF;
23 public ViewProductActivity(JFrame prev, Customer customer) {
24 super("View Product");
25
26 this.setSize(Theme.GUI_WIDTH, Theme.GUI_HEIGHT);
27 this.setResizable(false);
28 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
29 this.setLocationRelativeTo(null);
30 this.activity = prev;
31 this.customer = customer;
32
33 panel = new JPanel();
34 panel.setLayout(null);
35 panel.setBackground(Theme.BACKGROUND_PANEL);
36
37 title = new JLabel("View Product");
38 title.setBounds(30, 40, 300,75);
39 title.setOpaque(true);
40 title.setBorder(new EmptyBorder(0,20,0,0));
41 title.setFont(Theme.FONT_TITLE);
42 title.setForeground(Theme.COLOR_TITLE);
43 panel.add(title);
44
45 buttonLogout = new JButton("Logout");
46 buttonLogout.setBounds(Theme.GUI_WIDTH-140, 40, Theme.BUTTON_PRIMARY_WIDTH,30);
47 buttonLogout.setFont(Theme.FONT_BUTTON);
48 buttonLogout.setBackground(Color.WHITE);
49 buttonLogout.setForeground(Theme.COLOR_TITLE);
50 buttonLogout.addActionListener(this);
51 panel.add(buttonLogout);
52
53 buttonBack = new JButton("Back");
54 buttonBack.setBounds(Theme.GUI_WIDTH-140, 80, Theme.BUTTON_PRIMARY_WIDTH,30);
55 buttonBack.setFont(Theme.FONT_BUTTON);
56 buttonBack.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
57 buttonBack.setForeground(Theme.COLOR_BUTTON_PRIMARY);
58 buttonBack.addActionListener(this);
59 panel.add(buttonBack);
60
61 keywordLabel = new JLabel("Keyword: ");
62 keywordLabel.setBounds(60, 140, 140, 30);
63 keywordLabel.setFont(Theme.FONT_REGULAR);
64 panel.add(keywordLabel);
65
66 keywordTF = new JTextField();
67 keywordTF.setBounds(160, 140, 240, 30);
68 keywordTF.setFont(Theme.FONT_INPUT);
69 panel.add(keywordTF);
70
71 byWhatCB = new JComboBox(new Object[]{"By ID", "By Name"});
72 byWhatCB.setBounds(400, 140, 100,30);
73 byWhatCB.setFont(Theme.FONT_INPUT);
74 panel.add(byWhatCB);
75
76 buttonCheck = new JButton("Search");
77 buttonCheck.setBounds(500, 140, Theme.BUTTON_PRIMARY_WIDTH,30);
78 buttonCheck.setFont(Theme.FONT_BUTTON);
79 buttonCheck.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
80 buttonCheck.setForeground(Theme.COLOR_BUTTON_PRIMARY);
81 buttonCheck.addActionListener(this);
82 panel.add(buttonCheck);
83
84 table = new JTable();
85 DefaultTableModel model = new DefaultTableModel();
86 model.setColumnIdentifiers(Product.columnNames);
87 table.setModel(model);
88 table.addMouseListener(new MouseAdapter() {
89 public void mouseClicked(MouseEvent evt) {
90 jTable_ClickMouseClicked(evt);
91 }
92 });
93 frame = new JScrollPane(table);
94 frame.setBounds(40,185,600,300);
95 panel.add(frame);
96
97 table.setModel(Product.searchProduct("", "By Name"));
98
99 header = new JLabel();
100 header.setBackground(Theme.BACKGROUND_HEADER);
101 header.setOpaque(true);
102 header.setBounds(0, 0, Theme.GUI_WIDTH, 75);
103 panel.add(header);
104
105 this.add(panel);
106 }
107
108 public ViewProductActivity(JFrame prev, Employee employee) {
109 super("View Product");
110
111 this.setSize(Theme.GUI_WIDTH, Theme.GUI_HEIGHT);
112 this.setResizable(false);
113 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
114 this.setLocationRelativeTo(null);
115 this.activity = prev;
116 this.employee = employee;
117
118 panel = new JPanel();
119 panel.setLayout(null);
120 panel.setBackground(Theme.BACKGROUND_PANEL);
121
122 title = new JLabel("View Product");
123 title.setBounds(30, 40, 300,75);
124 title.setOpaque(true);
125 title.setBorder(new EmptyBorder(0,20,0,0));
126 title.setFont(Theme.FONT_TITLE);
127 title.setForeground(Theme.COLOR_TITLE);
128 panel.add(title);
129
130 buttonLogout = new JButton("Logout");
131 buttonLogout.setBounds(Theme.GUI_WIDTH-140, 40, Theme.BUTTON_PRIMARY_WIDTH,30);
132 buttonLogout.setFont(Theme.FONT_BUTTON);
133 buttonLogout.setBackground(Color.WHITE);
134 buttonLogout.setForeground(Theme.COLOR_TITLE);
135 buttonLogout.addActionListener(this);
136 panel.add(buttonLogout);
137
138 buttonBack = new JButton("Back");
139 buttonBack.setBounds(Theme.GUI_WIDTH-140, 80, Theme.BUTTON_PRIMARY_WIDTH,30);
140 buttonBack.setFont(Theme.FONT_BUTTON);
141 buttonBack.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
142 buttonBack.setForeground(Theme.COLOR_BUTTON_PRIMARY);
143 buttonBack.addActionListener(this);
144 panel.add(buttonBack);
145
146 buttonAddProduct = new JButton("Add");
147 buttonAddProduct.setBounds(Theme.GUI_WIDTH-140, 115, Theme.BUTTON_PRIMARY_WIDTH, 30);
148 buttonAddProduct.setFont(Theme.FONT_BUTTON);
149 buttonAddProduct.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
150 buttonAddProduct.setForeground(Theme.COLOR_BUTTON_PRIMARY);
151 buttonAddProduct.addActionListener(this);
152 panel.add(buttonAddProduct);
153
154 keywordLabel = new JLabel("Keyword: ");
155 keywordLabel.setBounds(60, 140, 140, 30);
156 keywordLabel.setFont(Theme.FONT_REGULAR);
157 panel.add(keywordLabel);
158
159 keywordTF = new JTextField();
160 keywordTF.setBounds(160, 140, 240, 30);
161 keywordTF.setFont(Theme.FONT_INPUT);
162 panel.add(keywordTF);
163
164 byWhatCB = new JComboBox(new Object[]{"By ID", "By Name"});
165 byWhatCB.setBounds(400, 140, 100,30);
166 byWhatCB.setFont(Theme.FONT_INPUT);
167 panel.add(byWhatCB);
168
169 buttonCheck = new JButton("Search");
170 buttonCheck.setBounds(500, 140, Theme.BUTTON_PRIMARY_WIDTH,30);
171 buttonCheck.setFont(Theme.FONT_BUTTON);
172 buttonCheck.setBackground(Theme.BACKGROUND_BUTTON_PRIMARY);
173 buttonCheck.setForeground(Theme.COLOR_BUTTON_PRIMARY);
174 buttonCheck.addActionListener(this);
175 panel.add(buttonCheck);
176
177 table = new JTable();
178 DefaultTableModel model = new DefaultTableModel();
179 model.setColumnIdentifiers(Product.columnNames);
180 table.setModel(model);
181 table.addMouseListener(new MouseAdapter() {
182 public void mouseClicked(MouseEvent evt) {
183 jTable_ClickMouseClicked(evt);
184 }
185 });
186 frame = new JScrollPane(table);
187 frame.setBounds(40,185,600,300);
188 panel.add(frame);
189
190 table.setModel(Product.searchProduct("", "By Name"));
191
192 header = new JLabel();
193 header.setBackground(Theme.BACKGROUND_HEADER);
194 header.setOpaque(true);
195 header.setBounds(0, 0, Theme.GUI_WIDTH, 75);
196 panel.add(header);
197
198 this.add(panel);
199 }
200
201 public void actionPerformed(ActionEvent ae) {
202 if (ae.getSource().equals(buttonLogout)) {
203 this.setVisible(false);
204 new LoginActivity().setVisible(true);
205 }
206 else if (ae.getSource().equals(buttonBack)) {
207 this.setVisible(false);
208 activity.setVisible(true);
209 }
210 else if (ae.getSource().equals(buttonCheck)) {
211 table.setModel(Product.searchProduct(keywordTF.getText().trim(), byWhatCB.getSelectedItem().toString()));
212 }
213 else if (ae.getSource().equals(buttonAddProduct)) {
214 this.setVisible(false);
215 new AddProductActivity(this, employee).setVisible(true);
216 }
217 else {}
218 }
219
220 private void jTable_ClickMouseClicked(MouseEvent evt) {
221 int index = table.getSelectedRow();
222
223 TableModel model = table.getModel();
224
225 String value1 = model.getValueAt(index, 0).toString();
226
227 if (customer!=null) {}
228 else if (employee!=null)
229 new ManageProduct(value1, this).setVisible(true);
230 else {}
231 }
232 }